package com.chuangshu.chuangshuteam.service;

import com.chuangshu.chuangshuteam.entity.TeamMember;
import com.chuangshu.chuangshuteam.entity.Users;

import java.util.List;

/**
 * 权限服务接口
 */
public interface AuthService {

    /**
     * 检查用户是否有指定权限
     */
    boolean hasPermission(Long userId, String permissionCode);

    /**
     * 检查用户是否有指定角色
     */
    boolean hasRole(Long userId, String roleName);

    /**
     * 检查用户是否是管理员
     */
    boolean isAdmin(Long userId);

    /**
     * 检查用户是否是方向负责人
     */
    boolean isDirectionLeader(Long userId, String direction);

    /**
     * 检查用户是否有权限访问指定方向的数据
     */
    boolean hasDirectionPermission(Long userId, String direction);

    /**
     * 获取用户所在团队的信息
     */
    TeamMember getTeamMemberInfo(Long userId);

    /**
     * 获取用户有权限的方向列表
     */
    List<String> getUserDirections(Long userId);

    boolean isUserInTeam(Long userId);
    /**
     * 检查用户是否有团队管理权限
     */
    boolean hasTeamManagementPermission(Long userId);

    List<String> getUserPermissions(Long userId);
}